package test.specs.atualizausuario;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;


import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

import br.com.ffm.info.praticas.fiptwitter.FipTwitter;
import br.com.ffm.info.praticas.fiptwitter.Usuario;

public class AlteraPerfilSenhaInvalidaCenario {
	
	private FipTwitter twitter;	
	private Exception resultException;
	private Usuario u ;
	
	public AlteraPerfilSenhaInvalidaCenario(){
		twitter = new FipTwitter();
		twitter.novoUsuario("Capitão Nascimento", "CptoNascimento", "nuncaserao");
	}


	@Given ("eu ja tenha cadastrado o usuario de login CptoNascimento de nome Capitão Nascimento e senha nuncaserao")
	public void dadoQueCrioUmUsuario(){
		try{
			twitter.buscarUsuario("CptoNascimento");
		}
		catch(Exception e){
			resultException = e;
		}		
	}
	
	@When ("Quando tento editar a biografia do usuário passando o login CptoNascimento senha 1234567 e a nova biografia (Capitão do BOPE-RJ) ")
	public void editarBiografia(String login, String senha, String novaBiografia){
		try{
			u = twitter.logarTwitter("CptoNascimento","1234567");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarBiografia(u, "(Capitão do BOPE-RJ)");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar o email do usuário passando o login CptoNascimento senha 1234567 e o novo email (captnascimento@bope-rj.com.br)")
	public void editarEmail(String login, String senha, String novoEmail){
		try{
			u = twitter.logarTwitter("CptoNascimento","1234567");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarEmail(u, "(captnascimento@bope-rj.com.br)");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar o website do usuário passando o login CptoNascimento senha 1234567 e o novo site (www.eusoufoda.com.br)")
	public void editarWebsite(String login, String senha, String novoSite){
		try{
			u = twitter.logarTwitter("CptoNascimento","1234567");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarWebsite(u, "(www.eusoufoda.com.br)");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}
	
	@When ("Quando tento editar a localização do usuário passando o login CptoNascimento senha 1234567 e a nova localização (Rio de Janeiro-Brasil)")
	public void editarLocalização(String login, String senha, String novaLocalização){
		try{
			u = twitter.logarTwitter("CptoNascimento","1234567");
		}
		catch(Exception e){
			resultException = e;
		}
		try{
			twitter.editarLocalização(u, "(Rio de Janeiro-Brasil)");
		}
		catch(Exception ex){
			resultException = ex;
		}
	}

	@Then("deve aparecer o erro: $erro")
	public void oSistemaDeveLancarOErro(String erro) {
		assertThat(resultException, notNullValue());
		assertThat(erro, equalTo(resultException.getMessage()));
	}

}



